Program providers such as multiple system operators (“MSOs”) deliver digital content and provide services to consumers over networks such as cable networks. Cable networks typically include headend reception and transmission equipment configured to distribute digital content/services to consumer network devices, such as set-top boxes, via encoded program streams carried over in-band channels.
In traditional cable networks, program streams are encoded using a combination of standard and proprietary protocols, and network interfaces are largely based on proprietary protocols. Moving Picture Experts Group (“MPEG”) protocols are generally used to encode content into data streams. Each data stream has an associated program identifier (“PID”) associated therewith, and multiple data streams are multiplexed into a single transport stream.
Information regarding the organization of the PIDs comprising the transport stream, is conventionally communicated to consumer network devices via service information messages transmitted on out-of-band (“OOB”) channels. PID organization information is defined by well-known relational addressing tables (that are also associated with PIDs within the transport stream) such as the Program Association Table (“PAT”) and Program Map Tables (“PMTs”). Other network-defined messages (often proprietary) are often delivered conventionally to consumer network devices on OOB channels. These message include service information messages that allow consumer network devices to efficiently decode MPEG's well-known relational addressing tables (for example, certain messages/tables defined by Motorola's DigiCipherll protocol), conditional access messages, electronic program guide messages, emergency alert system messages, and other generic messages. Many consumer network devices use hardware to filter messages received over OOB channels—for example, many set-top boxes manufactured by Motorola use hardware to filter messages relating to specific MPEG PIDs.
MSOs wish to create flexible network architectures—evidenced by the efforts of OpenCable™, a group of North American cable operators seeking to create a common platform for advanced interactive cable services—and prefer to rely on data communication technologies such as the Ethernet and Internet Protocol (“IP”), rather than an arrangement of proprietary network interfaces and protocols. The OpenCable™ effort has two key components: hardware specifications and software specifications. The hardware specifications define host devices (for example, set-top boxes) that include CableCARD™ modules/interfaces.
The software specifications, among other things, seek to standardize cable network interfaces. One such cable network interface is the interface for transporting messages over OOB channels between cable network headends and consumer network devices such as set-top boxes. The “DOCSIS® Set-top Gateway (DSG) Interface Specification,” issued by CableLabs® on Aug. 4, 2004 (the “DSG Specification”), defines an interface for transport of OOB messages over Internet Protocol between a set-top network controller and a set-top box. The DSG Specification is hereby incorporated by reference in its entirety for all purposes, as if set forth in full herein.
In converged IP and Ethernet systems, however, MPEG PIDs are not unique, making infrastructure, such as hardware used by consumer network devices to filter OOB messages relating to specific MPEG PIDs, of little use. And although certain advanced set-top boxes may be able to receive OOB messages in the manner set forth in the DSG Specification, without the ability to filter the IP OOB messages using existing hardware, they may be overwhelmed by the task of processing the large number of IP OOB messages required to manage the encoded data streams received over in-band channels.
There are therefore needs for methods and apparatuses for managing encoded data streams configured for broadcasting to consumer network devices within broadband communication systems, which methods and apparatuses use packet-based network protocol messaging for out-of-band communication with the consumer network devices, and which also allow the consumer network devices to receive relevant messages based on predetermined parameters of the encoding protocol.
SUMMARY According to an aspect of the present invention, a method for managing a data stream encoded according to a digital transmission protocol and configured for broadcasting to a consumer network device within a broadband communications network includes: encapsulating a message relating to the data stream within a transport layer data packet, the transport layer data packet having a destination port number field associated therewith; creating a destination port number value within the destination port number field, the destination port number value associated with a predetermined parameter of the digital transmission protocol; and based on the destination port number value, forwarding the transport layer data packet to the consumer network device according to a network layer protocol. When the forwarded message is received by the consumer network device, the consumer network device is caused to process the data stream based on the message, and caused to establish an application layer communication socket based on the destination port number value. The application layer communication socket usable to receive further messages associated with the predetermined parameter of the digital transmission protocol.
The transport layer data packet, which may be a user data protocol (“UDP”) packet, may be forwarded according to a protocol set forth in a document entitled “DOCSIS® Set-top Gateway (DSG) Interface Specification,” issued by CableLabs® on Aug. 4, 2004. The network layer protocol may be an Internet Protocol “IP” protocol. The digital transmission protocol may be a Moving Pictures Experts Group (“MPEG”) protocol.
The message, which may be an out-of-band message, includes information (such as a Program Association Table, a Program Map Table, a conditional access table, and an entitlement management message) used for accessing information within the data stream. The destination port number value (which may be in a predetermined private port range determined by a 3- or 4-bit prefix of the destination port number value) is a logical reference to the predetermined parameter (for example, an MPEG program identifier (“PID”) value, a private unicast addressing protocol, or a private multicast addressing protocol), identifying the content of the message.
In accordance with another aspect of the present invention, a computer-readable medium is encoded with a computer program which, when loaded into a processor, implements the foregoing method.
In accordance with a further aspect of the present invention, a method for managing a data stream encoded according to a digital transmission protocol and configured for broadcasting to a consumer network device within a broadband communications network includes: receiving a message encapsulated within a transport layer data packet, the transport layer data packet having a destination port number field associated therewith, the destination port number field having a value therein associated with a predetermined parameter of the digital transmission protocol; based on the destination port number value, establishing an application layer communication socket, the application layer communication socket usable to receive further messages associated with the predetermined parameter of the digital transmission protocol; and based on the message, processing the data stream. The method may further include using hardware or software filters associated with the consumer network device to discriminate the destination port number field.
In accordance with a still further aspect of the present invention, a computer-readable medium is encoded with a computer program which, when loaded into a processor, implements the foregoing method.
In accordance with yet another aspect of the present invention, an apparatus for managing a data stream encoded according to a digital transmission protocol and configured for broadcasting to a consumer network device within a broadband communications network includes: an interface operative to process a plurality of transport layer data packets; a computer-readable storage medium; and a processor responsive to the computer-readable storage medium and to a computer program. When the computer program is loaded into the processor, it is operative to: arrange for receipt of a message encapsulated within a transport layer data packet, the transport layer data packet having a destination port number field associated therewith, the destination port number field having a value therein associated with a predetermined parameter of the digital transmission protocol; and based on the destination port number value, arrange for establishment of an application layer communication socket, the application layer communication socket usable to receive further messages associated with the predetermined parameter of the digital transmission protocol, the data stream arranged for processing based on the message.
The processor may be associated with a server, or with the consumer network device (which may be, for example, a set-top box).